home *** CD-ROM | disk | FTP | other *** search
/ Aminet 2 / Aminet AMIGA CDROM (1994)(Walnut Creek)[Feb 1994][W.O. 44790-1].iso / Aminet / dev / c / ObjectiveGT1_0.lha / Include / Lattice / OGT / ObjectiveGadTools.h < prev    next >
C/C++ Source or Header  |  1992-10-21  |  33KB  |  560 lines

  1. #ifndef  OGT_OBJECTIVEGADTOOLS_H
  2. #define  OGT_OBJECTIVEGADTOOLS_H   1
  3. /*
  4. ** $Filename: OGT/ObjectiveGadTools.h $
  5. ** $Release : 1.0                     $
  6. ** $Revision: 1.000                   $
  7. ** $Date    : 18/10/92                $
  8. **
  9. **
  10. ** (C) Copyright 1991,1992 Davide Massarenti
  11. **              All Rights Reserved
  12. */
  13.  
  14. #include <exec/types.h>
  15. #include <exec/nodes.h>
  16. #include <exec/lists.h>
  17. #include <exec/memory.h>
  18. #include <exec/tasks.h>
  19. #include <exec/ports.h>
  20. #include <exec/semaphores.h>
  21. #include <exec/libraries.h>
  22. #include <exec/io.h>
  23. #include <exec/execbase.h>
  24.  
  25. #include <intuition/cghooks.h>
  26. #include <intuition/sghooks.h>
  27.  
  28. #include <intuition/classusr.h>
  29. #include <intuition/icclass.h>
  30. #include <intuition/imageclass.h>
  31. #include <intuition/gadgetclass.h>
  32.  
  33. #include <libraries/asl.h>
  34.  
  35. #include <proto/all.h>
  36.  
  37. #define OGT_LIB_NAME    "objectivegadtools.library"
  38. #define OGT_LIB_VERSION (1)
  39.  
  40. #define   ASLREQ_OGT_CLASS   "aslreq_ogt"
  41. #define   BUTTON_OGT_CLASS   "button_ogt"
  42. #define    GROUP_OGT_CLASS    "group_ogt"
  43. #define LISTVIEW_OGT_CLASS "listview_ogt"
  44. #define     MENU_OGT_CLASS     "menu_ogt"
  45. #define MULTIWAY_OGT_CLASS "multiway_ogt"
  46. #define     PROP_OGT_CLASS     "prop_ogt"
  47. #define SCROLLER_OGT_CLASS "scroller_ogt"
  48. #define SHOWLIST_OGT_CLASS "showlist_ogt"
  49. #define SHOWTEXT_OGT_CLASS "showtext_ogt"
  50. #define   STRING_OGT_CLASS   "string_ogt"
  51.  
  52. struct OGT_ObjectSettings
  53. {
  54.    STRPTR          Class;
  55.    struct TagItem *Settings;
  56.    struct TagItem *PostSettings;
  57.    ULONG           Parent;
  58.    ULONG           Align;
  59. };
  60.  
  61. struct OGT_ObjectLink
  62. {
  63.    ULONG           From;
  64.    ULONG           To;
  65.    struct TagItem *Map;
  66.    Tag            *Filter;
  67. };
  68.  
  69. #define OGT_NOOBJECT ((ULONG)-1)
  70.  
  71.  
  72. /**********************************************************************************/
  73. /*                                                                                */
  74. /*                      ObjectiveGadTools common attributes                       */
  75. /*                                                                                */
  76. /**********************************************************************************/
  77. #define OGT_Dummy                   (TAG_USER + 0x2F0000)
  78.  
  79. #define OGT_VisualInfo              (OGT_Dummy + 0x00)    /* APTR                                                                           */
  80. #define OGT_LinkToAnchor            (OGT_Dummy + 0x01)    /* BOOL                         Default: TRUE                                     */
  81. #define OGT_Parent                  (OGT_Dummy + 0x02)    /* Object *                                                                       */
  82. #define OGT_AlignToObject           (OGT_Dummy + 0x03)    /* Object *                                                                       */
  83. #define OGT_AppGadget               (OGT_Dummy + 0x04)    /* BOOL                         Default: FALSE                                    */
  84.  
  85.  
  86. #define OGT_TextFont                (OGT_Dummy + 0x08)    /* struct TextFont *            Default: NULL                                     */
  87. #define OGT_TextColor               (OGT_Dummy + 0x09)    /* SHORT                        Default: dri_Pens[ TEXTPEN ]                      */
  88. #define OGT_TextPlacement           (OGT_Dummy + 0x0A)    /* SHORT                                                                          */
  89. #define OGT_DrawFrame               (OGT_Dummy + 0x0B)    /* BOOL                                                                           */
  90. #define OGT_ClickRepeat             (OGT_Dummy + 0x0C)    /* BOOL                         Default: FALSE                                    */
  91. #define OGT_Activation              (OGT_Dummy + 0x0D)    /* ULONG                                                                          */
  92.  
  93. #define OGT_Right                   (OGT_Dummy + 0x10)    /* SHORT                                                                          */
  94. #define OGT_Bottom                  (OGT_Dummy + 0x11)    /* SHORT                                                                          */
  95. #define OGT_SetPosHandle            (OGT_Dummy + 0x12)    /* USHORT                       Default: OGT_X_Left          | OGT_Y_Top          */
  96. #define OGT_SetPosReference         (OGT_Dummy + 0x13)    /* ULONG                        Default: OGT_X_Left          | OGT_Y_Top          */
  97. #define OGT_SetDimReference         (OGT_Dummy + 0x14)    /* ULONG                        Default: OGT_X_Left_Relative | OGT_Y_Top_Relative */
  98. #define OGT_ScaleLeft               (OGT_Dummy + 0x15)    /* UBYTE                        Default: OGT_Fixed                                */
  99. #define OGT_ScaleTop                (OGT_Dummy + 0x16)    /* UBYTE                        Default: OGT_Fixed                                */
  100. #define OGT_ScaleWidth              (OGT_Dummy + 0x17)    /* UBYTE                        Default: OGT_Fixed                                */
  101. #define OGT_ScaleHeight             (OGT_Dummy + 0x18)    /* UBYTE                        Default: OGT_Fixed                                */
  102. #define OGT_FontXscale              (OGT_Dummy + 0x19)    /* USHORT                       Default: 8                                        */
  103. #define OGT_FontYscale              (OGT_Dummy + 0x1A)    /* USHORT                       Default: 8                                        */
  104. #define OGT_DomainXscale            (OGT_Dummy + 0x1B)    /* USHORT                       Default: 100                                      */
  105. #define OGT_DomainYscale            (OGT_Dummy + 0x1C)    /* USHORT                       Default: 100                                      */
  106. #define OGT_ResetAspect             (OGT_Dummy + 0x1D)    /* void                                                                           */
  107.  
  108. #define OGT_DroppedIcon             (OGT_Dummy + 0x1E)    /* STRPTR                                                                         */
  109.  
  110. /**********************************************************************************/
  111. /*                                                                                */
  112. /* BUTTON_OGT_CLASS specific attributes                                           */
  113. /*                                                                                */
  114. /**********************************************************************************/
  115. #define OGTBU_Labels                (OGT_Dummy + 0x20)    /* STRPTR *                                                                   */
  116. #define OGTBU_ActiveLabel           (OGT_Dummy + 0x21)    /* SHORT                                                                      */
  117. #define OGTBU_VectorImageDef        (OGT_Dummy + 0x22)    /* SHORT                                                                      */
  118. #define OGTBU_VectorImage           (OGT_Dummy + 0x23)    /* struct OGT_VectorImage *                                                   */
  119.  
  120. /*
  121.  * OGTBU_VectorImageDef tag data values:
  122.  */
  123. #define OGTBU_VectorImage_Radio       (0)
  124. #define OGTBU_VectorImage_Check       (1)
  125. #define OGTBU_VectorImage_Cycle       (2)
  126. #define OGTBU_VectorImage_GetFile     (3)
  127. #define OGTBU_VectorImage_ArrowUp     (4)
  128. #define OGTBU_VectorImage_ArrowDown   (5)
  129. #define OGTBU_VectorImage_ArrowLeft   (6)
  130. #define OGTBU_VectorImage_ArrowRight  (7)
  131.  
  132. struct OGT_VectorImage
  133. {
  134.    struct OGT_VectorElement *LayoutNormal;    /* Could be NULL                             */
  135.    struct OGT_VectorElement *LayoutSelected;  /* Could be NULL                             */
  136.    struct OGT_VectorElement *LayoutHitTest;   /* Could be NULL                             */
  137.    SHORT                     PosX;            /* A negative value means Central Position   */
  138.    SHORT                     PosY;            /* A negative value means Central Position   */
  139.    SHORT                     AspectX;         /* A negative value means a Fixed Size Image */
  140.    SHORT                     AspectY;         /* A negative value means a Fixed Size Image */
  141.    BOOL                      HasFrame;
  142.    BOOL                      KeepAspect;
  143. };
  144.  
  145.  
  146. struct OGT_VectorElement
  147. {
  148.    SHORT X;
  149.    SHORT Y;
  150.    SHORT Action;
  151. };
  152.  
  153. /* OGT_VectorElement.Action valid data (can be ORed together) */
  154. #define OGTBU_Act_Move       (0x0000)  /* Move at position X/Y                                                         */
  155. #define OGTBU_Act_Draw       (0x0001)  /* Draw a line from here to position X/Y                                        */
  156.  
  157. #define OGTBU_Act_StartFill  (0x0002)  /* Begin an area fill                                                           */
  158. #define OGTBU_Act_EndFill    (0x0004)  /* End an area fill                                                             */
  159.  
  160. #define OGTBU_Act_X_Right    (0x0008)  /* X is Right Edge relative                                                     */
  161. #define OGTBU_Act_Y_Bottom   (0x0010)  /* Y is Bottom Edge relative                                                    */
  162. #define OGTBU_Act_X_Center   (0x0020)  /* X is relative to central position                                            */
  163. #define OGTBU_Act_Y_Center   (0x0040)  /* Y is relative to central position                                            */
  164. #define OGTBU_Act_X_Scale    (0x0080)  /* if X > 0, then next X elements are scaled: realX = X * ImageWidth  / X_scale */
  165. #define OGTBU_Act_Y_Scale    (0x0100)  /* if Y > 0, then next Y elements are scaled: realY = Y * ImageHeight / Y_scale */
  166. #define OGTBU_Act_Shadow     (0x0200)  /* Draw with dri_Pens[ SHADOWPEN ]                                              */
  167. #define OGTBU_Act_Shine      (0x0400)  /* Draw with dri_Pens[ SHINEPEN  ]                                              */
  168. #define OGTBU_Act_Fill       (0x0800)  /* Draw with dri_Pens[ FILLPEN   ]                                              */
  169. #define OGTBU_Act_Color      (0x1000)  /* X holds the color to use with next elements                                  */
  170. #define OGTBU_Act_Last       (0x2000)  /* Last element                                                                 */
  171.  
  172.  
  173. /**********************************************************************************/
  174. /*                                                                                */
  175. /* MULTIWAY_OGT_CLASS specific attributes                                         */
  176. /*                                                                                */
  177. /**********************************************************************************/
  178. #define OGTMW_Labels                (OGT_Dummy + 0x28)    /* STRPTR *                                                                   */
  179. #define OGTMW_ActiveLabel           (OGT_Dummy + 0x29)    /* SHORT                                                                      */
  180. #define OGTMW_ActiveMask            (OGT_Dummy + 0x2A)    /* ULONG                                                                      */
  181.  
  182.  
  183. /**********************************************************************************/
  184. /*                                                                                */
  185. /* SCROLLER_OGT_CLASS specific attributes                                         */
  186. /*                                                                                */
  187. /**********************************************************************************/
  188. #define OGTSR_ArrowSize             (OGT_Dummy + 0x2C)    /* USHORT                       Default: 16                                   */
  189.  
  190.  
  191. /**********************************************************************************/
  192. /*                                                                                */
  193. /* SHOWLIST_OGT_CLASS specific attributes                                         */
  194. /*                                                                                */
  195. /**********************************************************************************/
  196. #define OGTSL_Labels                (OGT_Dummy + 0x30)    /* STRPTR *                                                                   */
  197. #define OGTSL_ListOfLabels          (OGT_Dummy + 0x31)    /* struct MinList *                                                           */
  198. #define OGTSL_FileToLoadByFH        (OGT_Dummy + 0x32)    /* BPTR                                                                       */
  199. #define OGTSL_FileToLoadByName      (OGT_Dummy + 0x33)    /* STRPTR                                                                     */
  200. #define OGTSL_FontOfLabels          (OGT_Dummy + 0x34)    /* struct TextFont *                                                          */
  201.  
  202. #define OGTSL_HoriPos               (OGT_Dummy + 0x35)    /* LONG                                                                       */
  203. #define OGTSL_HoriTotal             (OGT_Dummy + 0x36)    /* LONG                                                                       */
  204. #define OGTSL_HoriVisible           (OGT_Dummy + 0x37)    /* LONG                                                                       */
  205. #define OGTSL_VertPos               (OGT_Dummy + 0x38)    /* LONG                                                                       */
  206. #define OGTSL_VertTotal             (OGT_Dummy + 0x39)    /* LONG                                                                       */
  207. #define OGTSL_VertVisible           (OGT_Dummy + 0x3A)    /* LONG                                                                       */
  208.  
  209. #define OGTSL_UseNumPad             (OGT_Dummy + 0x3B)    /* BOOL                         Default: FALSE                                */
  210. #define OGTSL_Freedom               (OGT_Dummy + 0x3C)    /* ULONG                        Default: FREEVERT | FREEHORIZ                 */
  211. #define OGTSL_Spacing               (OGT_Dummy + 0x3D)    /* ULONG                        Default: 0                                    */
  212.  
  213. #define OGTSL_TranslateLabel        (OGT_Dummy + 0x3E)    /* struct Hook *                                                              */
  214. #define OGTSL_ExtraRendering        (OGT_Dummy + 0x3F)    /* struct Hook *                                                              */
  215.  
  216. #define OGTSL_InsertLabelBefore     (OGT_Dummy + 0x40)    /* STRPTR or struct Node *                                                    */
  217. #define OGTSL_ChangeLabel           (OGT_Dummy + 0x41)    /* STRPTR or struct Node *                                                    */
  218. #define OGTSL_DeleteLabel           (OGT_Dummy + 0x42)    /* STRPTR or struct Node *                                                    */
  219. #define OGTSL_InsertLabelAfter      (OGT_Dummy + 0x43)    /* STRPTR or struct Node *                                                    */
  220. #define OGTSL_WorkLabelPos          (OGT_Dummy + 0x44)    /* LONG                                                                       */
  221. #define OGTSL_LockList              (OGT_Dummy + 0x45)    /* BOOL                                                                       */
  222.  
  223.  
  224. struct ogmsl_Node
  225. {
  226.    struct Node ogmsl_Data;
  227.    SHORT       ogmsl_Flags;
  228. };
  229.  
  230. #define ogmsl_Flags_Modified         (0x0001)
  231. #define ogmsl_Flags_ReverseColors    (0x0002)
  232. #define ogmsl_Flags_UsePriAsColor    (0x0004)
  233.  
  234.  
  235. struct ogmsl_Translate
  236. {
  237.    struct ogmsl_Node *ogmsl_Node;
  238.    STRPTR             ogmsl_Text;
  239.    LONG               ogmsl_TextLength;
  240. };
  241.  
  242. struct ogmsl_ExtraRendering
  243. {
  244.    struct MinList    *ogmsl_Nodes;
  245.    struct ogmsl_Node *ogmsl_FirstNode;
  246.    struct RastPort   *ogmsl_RPort;
  247.    struct IBox        ogmsl_Domain;
  248.    ULONG              ogmsl_TextScrollLeft;
  249.    ULONG              ogmsl_TextScrollTop;
  250.    ULONG              ogmsl_TextSpacing;
  251.    BOOL               ogmsl_AfterText;
  252. };
  253.  
  254.  
  255. /********************************************************************************/
  256. /*                                                                              */
  257. /* ASLREQ_OGT_CLASS specific attributes                                         */
  258. /*                                                                              */
  259. /********************************************************************************/
  260. #define OGTAR_Type                  (OGT_Dummy + 0x50)    /* ASL_FileRequest or ASL_FontRequest                             ONLY OM_NEW */
  261. #define OGTAR_ShowSelected          (OGT_Dummy + 0x51)    /* BOOL                                                           ONLY OM_NEW */
  262. #define OGTAR_FullFileName          (OGT_Dummy + 0x52)    /* STRPTR                                                                     */
  263. #define OGTAR_FontData              (OGT_Dummy + 0x53)    /* struct TextAttr *                                                          */
  264. #define OGTAR_FilesSelected         (OGT_Dummy + 0x54)    /* STRPTR *                                                       ONLY OM_GET */
  265.  
  266.  
  267. /********************************************************************************/
  268. /*                                                                              */
  269. /* SHOWTEXT_OGT_CLASS specific attributes                                       */
  270. /*                                                                              */
  271. /********************************************************************************/
  272. #define OGTST_Number                (OGT_Dummy + 0x60)    /* LONG                                    Default: 0                         */
  273. #define OGTST_Label                 (OGT_Dummy + 0x61)    /* STRPTR                                                                     */
  274. #define OGTST_Labels                (OGT_Dummy + 0x62)    /* STRPTR *                                                                   */
  275. #define OGTST_Format                (OGT_Dummy + 0x63)    /* STRPTR                                                                     */
  276. #define OGTST_Arguments             (OGT_Dummy + 0x64)    /* void **                                                                    */
  277. #define OGTST_Placement             (OGT_Dummy + 0x65)    /* same as OGT_SetPosHandle                Default: OGT_X_Center|OGT_Y_Center */
  278.  
  279.  
  280. /********************************************************************************/
  281. /*                                                                              */
  282. /* MENU_OGT_CLASS specific attributes                                           */
  283. /*                                                                              */
  284. /********************************************************************************/
  285. #define OGTMN_Menu                  (OGT_Dummy + 0x70)    /* STRPTR                                                                     */
  286. #define OGTMN_Item                  (OGT_Dummy + 0x71)    /* STRPTR                                                                     */
  287. #define OGTMN_SubItem               (OGT_Dummy + 0x72)    /* STRPTR                                                                     */
  288. #define OGTMN_ImageItem             (OGT_Dummy + 0x73)    /* struct Image *                                                             */
  289. #define OGTMN_ImageSubItem          (OGT_Dummy + 0x74)    /* struct Image *                                                             */
  290. #define OGTMN_BarLabel              (OGT_Dummy + 0x75)    /* void                                                                       */
  291. #define OGTMN_NewName               (OGT_Dummy + 0x76)    /* STRPTR                                                                     */
  292. #define OGTMN_NewImage              (OGT_Dummy + 0x77)    /* struct Image *                                                             */
  293. #define OGTMN_ShortCut              (OGT_Dummy + 0x78)    /* SHORT                                                                      */
  294. #define OGTMN_MutualExclude         (OGT_Dummy + 0x79)    /* ULONG                                                                      */
  295. #define OGTMN_Hook                  (OGT_Dummy + 0x7A)    /* struct Hook *                                                              */
  296. #define OGTMN_ClearMenus            (OGT_Dummy + 0x7B)    /* BOOL                                                                       */
  297. #define OGTMN_MenuStrip             (OGT_Dummy + 0x7C)    /* struct Menu *                                                  ONLY OM_GET */
  298.  
  299.  
  300. /**********************************************************************************/
  301. /*                                                                                */
  302. /* LISTVIEW_OGT_CLASS specific attributes                                         */
  303. /*                                                                                */
  304. /**********************************************************************************/
  305. #define OGTLV_ActiveLabel           (OGT_Dummy + 0x80)    /* LONG                                                                       */
  306. #define OGTLV_Labels                (OGT_Dummy + 0x81)    /* STRPTR *                                                                   */
  307. #define OGTLV_ListOfLabels          (OGT_Dummy + 0x82)    /* struct MinList *                                                           */
  308. #define OGTLV_FontOfLabels          (OGT_Dummy + 0x83)    /* struct TextFont *                                                          */
  309.  
  310. #define OGTLV_ReadOnly              (OGT_Dummy + 0x84)    /* ULONG                        Default: FALSE                                */
  311. #define OGTLV_ShowSelected          (OGT_Dummy + 0x85)    /* ULONG                        Default: FALSE                                */
  312.  
  313. #define OGTLV_Top                   (OGT_Dummy + 0x86)    /* LONG                                                                       */
  314. #define OGTLV_Spacing               (OGT_Dummy + 0x87)    /* ULONG                        Default: 0                                    */
  315. #define OGTLV_ScrollWidth           (OGT_Dummy + 0x88)    /* ULONG                        Default: 16                                   */
  316. #define OGTLV_ShowHeight            (OGT_Dummy + 0x89)    /* ULONG                        Default: font->tf_YSize + 6                   */
  317.  
  318. #define OGTLV_FollowSelected        (OGT_Dummy + 0x8A)    /* BOOL                         Default: TRUE                                 */
  319. #define OGTLV_ToggleSelect          (OGT_Dummy + 0x8B)    /* BOOL                                                                       */
  320.  
  321. #define OGTLV_InsertLabelBefore     (OGT_Dummy + 0x8C)    /* STRPTR                                                                     */
  322. #define OGTLV_ChangeLabel           (OGT_Dummy + 0x8D)    /* STRPTR                                                                     */
  323. #define OGTLV_DeleteLabel           (OGT_Dummy + 0x8E)    /* STRPTR                                                                     */
  324. #define OGTLV_InsertLabelAfter      (OGT_Dummy + 0x8F)    /* STRPTR                                                                     */
  325. #define OGTLV_WorkLabelPos          (OGT_Dummy + 0x90)    /* LONG                                                                       */
  326. #define OGTLV_LockList              (OGT_Dummy + 0x91)    /* BOOL                                                                       */
  327.  
  328.  
  329.  
  330. /* Tags passed through IDCMP_IDCMPUPDATE & OM_NOTIFY */
  331. #define OGT_ID                      (OGT_Dummy + 0x800)  /* UWORD                        */
  332. #define OGT_Object                  (OGT_Dummy + 0x801)  /* Object *                     */
  333. #define OGT_MouseX                  (OGT_Dummy + 0x802)  /* SHORT                        */
  334. #define OGT_MouseY                  (OGT_Dummy + 0x803)  /* SHORT                        */
  335. #define OGT_GadgetDown              (OGT_Dummy + 0x804)  /* BOOL                         */
  336. #define OGT_GadgetUp                (OGT_Dummy + 0x805)  /* BOOL                         */
  337. #define OGT_GadgetMove              (OGT_Dummy + 0x806)  /* BOOL                         */
  338. #define OGT_GadgetRepeat            (OGT_Dummy + 0x807)  /* BOOL                         */
  339. #define OGT_MenuUp                  (OGT_Dummy + 0x808)  /* ULONG                        */
  340. #define OGT_MenuItemUp              (OGT_Dummy + 0x809)  /* ULONG                        */
  341. #define OGT_MenuItemSubUp           (OGT_Dummy + 0x80A)  /* ULONG                        */
  342. #define OGT_AskedHelp               (OGT_Dummy + 0x80B)  /* BOOL                         */
  343.  
  344. #define OGTSL_HitX                  (OGT_Dummy + 0x810)  /* LONG                         */
  345. #define OGTSL_HitY                  (OGT_Dummy + 0x811)  /* LONG                         */
  346. #define OGTSL_HitLabelFromList      (OGT_Dummy + 0x812)  /* struct ogmsl_Node *          */
  347. #define OGTSL_HitLabelNumFromList   (OGT_Dummy + 0x813)  /* LONG                         */
  348.  
  349.  
  350. #define OGT_Reserved1               (OGT_Dummy + 0x840)
  351. #define OGT_Reserved2               (OGT_Dummy + 0x841)
  352. #define OGT_Reserved3               (OGT_Dummy + 0x842)
  353. #define OGT_Reserved4               (OGT_Dummy + 0x843)
  354. #define OGT_Reserved5               (OGT_Dummy + 0x844)
  355. #define OGT_Reserved6               (OGT_Dummy + 0x845)
  356. #define OGT_Reserved7               (OGT_Dummy + 0x846)
  357. #define OGT_Reserved8               (OGT_Dummy + 0x847)
  358. #define OGT_Reserved9               (OGT_Dummy + 0x848)
  359. #define OGT_Reserved10              (OGT_Dummy + 0x849)
  360. #define OGT_Reserved11              (OGT_Dummy + 0x84A)
  361. #define OGT_Reserved12              (OGT_Dummy + 0x84B)
  362. #define OGT_Reserved13              (OGT_Dummy + 0x84C)
  363. #define OGT_Reserved14              (OGT_Dummy + 0x84D)
  364. #define OGT_Reserved15              (OGT_Dummy + 0x84E)
  365. #define OGT_Reserved16              (OGT_Dummy + 0x84F)
  366.  
  367.  
  368. /* Flags for OGT_TextPlacement */
  369. #define OGT_Text_IN                 (0)
  370. #define OGT_Text_IN_LEFTMOST        (1)
  371. #define OGT_Text_IN_RIGHTMOST       (2)
  372. #define OGT_Text_LEFT               (3)
  373. #define OGT_Text_RIGHT              (4)
  374. #define OGT_Text_ABOVE              (5)
  375. #define OGT_Text_BELOW              (6)
  376. #define OGT_Text_HIDE               (7)
  377.  
  378.  
  379. /* Flags for OGT_Activation */
  380. #define OGT_Act_ToggleType          (0x0001)
  381. #define OGT_Act_ReportGadgetDown    (0x0002)
  382. #define OGT_Act_ReportGadgetUp      (0x0004)
  383. #define OGT_Act_ReportGadgetMove    (0x0008)
  384. #define OGT_Act_ReportGadgetRepeat  (0x0010)
  385.  
  386.  
  387. /* Flags for OGT_SetPosHandle, OGT_SetPosReference & OGT_SetDimReference */
  388. #define OGT_X_Left                  (0x0000)
  389. #define OGT_X_Center                (0x0001)
  390. #define OGT_X_Right                 (0x0002)
  391. #define OGT_X_Pos_Mask              (0x0003)
  392.  
  393. #define OGT_Y_Top                   (0x0000)
  394. #define OGT_Y_Center                (0x0004)
  395. #define OGT_Y_Bottom                (0x0008)
  396. #define OGT_Y_Pos_Mask              (0x000C)
  397.  
  398.  
  399. /* Flags for OGT_SetPosReference & OGT_SetDimReference */
  400. #define OGT_X_Mode_Free             (0x0000)
  401. #define OGT_X_Mode_Align            (0x0010)
  402. #define OGT_X_Mode_Center           (0x0020) /* Only for OGT_SetPosReference */
  403. #define OGT_X_Mode_In_Border        (0x0030)
  404. #define OGT_X_Mode_Mask             (0x0030)
  405.  
  406. #define OGT_Y_Mode_Free             (0x0000)
  407. #define OGT_Y_Mode_Align            (0x0040)
  408. #define OGT_Y_Mode_Center           (0x0080) /* Only for OGT_SetPosReference */
  409. #define OGT_Y_Mode_In_Border        (0x00C0)
  410. #define OGT_Y_Mode_Mask             (0x00C0)
  411.  
  412.  
  413. /* Flags for OGT_SetDimReference */
  414. #define OGT_X_Dim_Fixed             (0x0000)
  415. #define OGT_X_Dim_Relative          (0x0100)
  416. #define OGT_X_Dim_AsCoord           (0x0200)
  417. #define OGT_X_Dim_Mask              (0x0300)
  418.  
  419. #define OGT_Y_Dim_Fixed             (0x0000)
  420. #define OGT_Y_Dim_Relative          (0x0400)
  421. #define OGT_Y_Dim_AsCoord           (0x0800)
  422. #define OGT_Y_Dim_Mask              (0x0C00)
  423.  
  424.  
  425. /* Flags for OGT_ScaleXXXX */
  426. #define OGT_Fixed                   (0x00)
  427. #define OGT_FontRelative            (0x01)
  428. #define OGT_DomainRelative          (0x02)
  429.  
  430.  
  431. /**********************************************************************************/
  432. /*                                                                                */
  433. /*                        ObjectiveGadTools common methods                        */
  434. /*                                                                                */
  435. /**********************************************************************************/
  436. #define OGM_DUMMY                   (OGT_Dummy + 0x10000)
  437. #define OGM_ERASE                   (OGM_DUMMY + 0x00) /* erase the gadget image                                       */
  438. #define OGM_GETREALBOX              (OGM_DUMMY + 0x01) /* get the absolute position of gadget                          */
  439. #define OGM_ADDTARGET               (OGM_DUMMY + 0x02) /* adds    a target for OM_NOTIFY                               */
  440. #define OGM_REMTARGET               (OGM_DUMMY + 0x03) /* removes a target for OM_NOTIFY                               */
  441.  
  442. #define OGM_RESERVED1               (OGM_DUMMY + 0x10)
  443. #define OGM_RESERVED2               (OGM_DUMMY + 0x11)
  444. #define OGM_RESERVED3               (OGM_DUMMY + 0x12)
  445. #define OGM_RESERVED4               (OGM_DUMMY + 0x13)
  446. #define OGM_RESERVED5               (OGM_DUMMY + 0x14)
  447. #define OGM_RESERVED6               (OGM_DUMMY + 0x15)
  448. #define OGM_RESERVED7               (OGM_DUMMY + 0x16)
  449. #define OGM_RESERVED8               (OGM_DUMMY + 0x17)
  450. #define OGM_RESERVED9               (OGM_DUMMY + 0x18)
  451. #define OGM_RESERVED10              (OGM_DUMMY + 0x19)
  452. #define OGM_RESERVED11              (OGM_DUMMY + 0x1A)
  453. #define OGM_RESERVED12              (OGM_DUMMY + 0x1B)
  454. #define OGM_RESERVED13              (OGM_DUMMY + 0x1C)
  455. #define OGM_RESERVED14              (OGM_DUMMY + 0x1D)
  456. #define OGM_RESERVED15              (OGM_DUMMY + 0x1E)
  457. #define OGM_RESERVED16              (OGM_DUMMY + 0x1F)
  458.  
  459.  
  460. /**********************************************************************************/
  461. /*                                                                                */
  462. /*                 Parameter "Messages" passed to class methods                   */
  463. /*                                                                                */
  464. /**********************************************************************************/
  465.  
  466. /* OGM_ERASE */
  467. struct ogmErase
  468. {
  469.    ULONG              MethodID;
  470.    struct GadgetInfo *ogm_GInfo;
  471.    BOOL               ogm_BroadCast;
  472. };
  473.  
  474.  
  475. /* OGM_GETREALBOX */
  476. struct ogmGetRealBox
  477. {
  478.    ULONG              MethodID;
  479.    struct GadgetInfo *ogm_GInfo;
  480.    struct IBox       *ogm_Frame;
  481.    ULONG              ogm_Flags;
  482. };
  483.  
  484. /* Flags for ogmGetRealBox.ogm_Flags */
  485. #define GRB_F_ABSOLUTE     (0x0000)
  486. #define GRB_F_RELATIVE     (0x0001)
  487.  
  488.  
  489. /* OGM_ADDTARGET */
  490. struct ogmAddTarget
  491. {
  492.    ULONG           MethodID;
  493.    Object         *ogm_Target;
  494.    struct TagItem *ogm_Map;
  495.    Tag            *ogm_Filter;
  496. };
  497.  
  498.  
  499. /* OGM_REMTARGET */
  500. struct ogmRemTarget
  501. {
  502.    ULONG   MethodID;
  503.    Object *ogm_Target;
  504. };
  505.  
  506.  
  507. /**********************************************************************************/
  508. /*                                                                                */
  509. /*                          VisualInfo Attributes                                 */
  510. /*                                                                                */
  511. /**********************************************************************************/
  512. #define OVI_Dummy                   (OGT_Dummy - 0x1000)
  513.  
  514. #define OVI_GimmeZeroZero           (OVI_Dummy + 0x00)
  515. #define OVI_AdaptWidthToFont        (OVI_Dummy + 0x01)
  516. #define OVI_AdaptHeightToFont       (OVI_Dummy + 0x02)
  517.  
  518.  
  519. /**********************************************************************************/
  520. /*                                                                                */
  521. /*                               TAGs handling                                    */
  522. /*                                                                                */
  523. /**********************************************************************************/
  524. struct TagItemMulti
  525. {
  526.    Tag   OriginalTag;
  527.    Tag   MappedTag;
  528.    ULONG Value;
  529. };
  530.  
  531.  
  532. /**********************************************************************************/
  533. /*                                                                                */
  534. /*                             Memory handling                                    */
  535. /*                                                                                */
  536. /**********************************************************************************/
  537. struct OGT_PooledMemHeader
  538. {
  539.    struct SignalSemaphore AccessSem;   /* READ-ONLY */
  540.    struct MinList         List;        /* READ-ONLY */
  541.    ULONG                  Size;        /* READ-ONLY */
  542.    ULONG                  Attributes;  /* READ-ONLY */
  543. };
  544.  
  545. #ifndef OGT_OBJECTIVEGADTOOLSBASE_H
  546. #include <OGT/ObjectiveGadToolsBase.h>
  547. #endif
  548.  
  549. extern struct ObjectiveGadToolsBase *ObjectiveGadToolsBase;
  550.  
  551. #ifndef OGT_OBJECTIVEGADTOOLS_PROTOS_H
  552. #include <OGT/ObjectiveGadTools_protos.h>
  553. #endif
  554.  
  555. #ifndef OGT_OBJECTIVEGADTOOLS_LIB_H
  556. #include <OGT/ObjectiveGadTools_lib.h>
  557. #endif
  558.  
  559. #endif /* OGT_OBJECTIVEGADTOOLS_H */
  560.